Javascript Interview Questions - Hoisting, Scoping, Shadowing And More